Hadoop এর বিশ্বে ডেটা নিরাপত্তা এবং রিলায়েবিলিটি নিশ্চিত করা অত্যন্ত গুরুত্বপূর্ণ, বিশেষ করে যখন বড় পরিসরের ডেটাসেট নিয়ে কাজ করা হয়। এই চ্যালেঞ্জগুলির মোকাবেলা করার জন্য, Snapshot এবং Checkpointing দুটি গুরুত্বপূর্ণ কৌশল ব্যবহার করা হয়। এই দুটি কৌশল হাদুপে ডেটা ব্যাকআপ এবং পুনরুদ্ধার প্রক্রিয়া নিশ্চিত করতে সাহায্য করে।
Snapshot Technique in Hadoop
Snapshot হল একটি নির্দিষ্ট সময়ের জন্য ডেটার স্থিতি বা অবস্থার একটি রেকর্ড যা পরে পুনরুদ্ধার করা যেতে পারে। হাদুপের ক্ষেত্রে, HDFS (Hadoop Distributed File System)-এ snapshot তৈরি করার মাধ্যমে ফাইল সিস্টেমের একটি পয়েন্ট-ইন-টাইম কপি রাখা হয়। এটি ডেটা হারানো বা ক্ষতির ঝুঁকি কমাতে ব্যবহৃত হয়।
Snapshot-এর সুবিধা:
- ডেটা রিলায়েবিলিটি: Snapshot-এর মাধ্যমে ডেটার নিরাপত্তা বৃদ্ধি পায়, কারণ এটি কোন নির্দিষ্ট সময়ে ডেটার একটি কপি তৈরি করে, যা পরে প্রয়োজনে রিস্টোর করা যেতে পারে।
- ডেটা পুনরুদ্ধার: যদি কোনও ফাইল বা ডিরেক্টরি ক্ষতিগ্রস্ত হয় বা ভুলভাবে মুছে ফেলা হয়, তবে snapshot থেকে তা পুনরুদ্ধার করা যায়।
- পারফরম্যান্স উন্নতি: Snapshot একটি পারফরম্যান্স-কেন্দ্রিক প্রক্রিয়া, যেখানে এটি মূল ডেটাকে প্রভাবিত না করে কেবল ডেটার পরিবর্তনগুলিকে ট্র্যাক করে।
HDFS Snapshot তৈরি করা:
HDFS-এ snapshot তৈরি করতে নিম্নলিখিত কমান্ড ব্যবহার করা হয়:
hdfs dfs -createSnapshot /user/hadoop/data snapshot_name
এটি /user/hadoop/data ডিরেক্টরির একটি snapshot তৈরি করবে। একটি snapshot এর মাধ্যমে আপনি সমস্ত ফাইল এবং ডিরেক্টরির অবস্থা দেখতে পারেন, এবং প্রয়োজনে পুনরুদ্ধারও করতে পারেন।
Snapshot পুনরুদ্ধার:
Snapshot থেকে ডেটা পুনরুদ্ধারের জন্য নিচের কমান্ড ব্যবহার করা হয়:
hdfs dfs -restoreSnapshot /user/hadoop/data snapshot_name
এটি snapshot_name থেকে ডেটা পুনরুদ্ধার করবে এবং ডিরেক্টরির পূর্ববর্তী অবস্থায় ফিরিয়ে আনবে।
Checkpointing Technique in Hadoop
Checkpointing হল একটি প্রক্রিয়া যা সিস্টেমের বর্তমান অবস্থার একটি স্টেট সেভ করে রাখে, যাতে প্রয়োজন হলে সিস্টেমটি ঐ অবস্থায় ফিরে যেতে পারে। হাদুপের YARN (Yet Another Resource Negotiator) এবং HBase-এ checkpointing পদ্ধতি ব্যবহৃত হয়। এটি দীর্ঘ-running টাস্কের মধ্যে মেমরি বা ডেটার স্থিতি সেভ করে এবং পুনরুদ্ধারযোগ্য করে।
Checkpointing-এর সুবিধা:
- Fault Tolerance: Checkpointing নিশ্চিত করে যে, যদি কোনও ব্যর্থতা ঘটে তবে সিস্টেম পূর্বের অবস্থায় ফিরে যেতে পারে, ফলে ডেটার ক্ষতি বা সিস্টেমের অবস্থা বিপর্যস্ত হয় না।
- দ্রুত পুনরুদ্ধার: ব্যর্থতার পর সিস্টেম দ্রুত পুনরুদ্ধার করা সম্ভব হয়, কারণ সিস্টেম পূর্বের সেভ করা অবস্থায় ফিরে যায়।
- ডেটা সুরক্ষা: ডেটার একটি নির্ভরযোগ্য সেভ করা সংস্করণ প্রদান করে, যাতে ডেটার দুর্বল অবস্থান পুনরুদ্ধার করা যায়।
Checkpointing in HBase:
HBase-এ checkpointing ব্যবহৃত হয় যাতে Write-Ahead Log (WAL) ফাইলের ক্ষতি হওয়ার পরও ডেটা নিরাপদ থাকে। Checkpointing-এ, HBase একটি নির্দিষ্ট সময়ে WAL ফাইলের স্ন্যাপশট তৈরি করে যা সিস্টেমের অবস্থা সেভ করে রাখে।
YARN Checkpointing:
YARN-এ checkpointing Job History Server ব্যবহারের মাধ্যমে করা হয়, যেখানে চলমান কাজের এবং তার অবস্থা সেভ করা হয়। ব্যর্থতা ঘটলে YARN পূর্বের checkpoint থেকে পুনরুদ্ধার করতে পারে।
Checkpointing Example in YARN:
YARN ক্লাস্টারের checkpointing কনফিগারেশন ফাইলটি নির্দিষ্ট করে যে কোন সময় অন্তর সিস্টেমের বর্তমান অবস্থা সেভ করা হবে।
<property>
<name>yarn.resourcemanager.checkpoint.period.ms</name>
<value>60000</value> <!-- 1 minute -->
</property>
এই কনফিগারেশনটি YARN ResourceManager-এ প্রতি এক মিনিটে checkpoint সেভ করার নির্দেশ দেবে।
Snapshot এবং Checkpointing এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | Snapshot | Checkpointing |
|---|---|---|
| পদ্ধতি | নির্দিষ্ট সময়ের ডেটা রেকর্ড রাখা | সিস্টেমের অবস্থা বা মেমরি সেভ করা |
| ব্যবহার | HDFS-এ ডেটার অবস্থান সংরক্ষণ | YARN, HBase বা সিস্টেমের অবস্থান সংরক্ষণ |
| ব্যর্থতা পুনরুদ্ধার | ফাইল বা ডিরেক্টরি পুনরুদ্ধার | সিস্টেমের পুরো অবস্থা পুনরুদ্ধার |
| ডেটার নিরাপত্তা | ডেটার ভ্যালিড পয়েন্ট ইন টাইম সেভ | সিস্টেমের কর্মক্ষমতা নিশ্চিত করা |
সারাংশ
Snapshot এবং Checkpointing হল হাদুপ সিস্টেমে ডেটা নিরাপত্তা এবং রিলায়েবিলিটি নিশ্চিত করার দুটি গুরুত্বপূর্ণ কৌশল। Snapshot ব্যবহার করে HDFS-এ ডেটার পয়েন্ট-ইন-টাইম কপি তৈরি করা হয়, যা পরবর্তী সময়ে পুনরুদ্ধারযোগ্য হয়। অন্যদিকে, Checkpointing ব্যবহার করে সিস্টেমের কার্যকলাপ এবং অবস্থা সেভ করা হয়, যাতে সিস্টেমের ব্যর্থতার পর দ্রুত পুনরুদ্ধার করা সম্ভব হয়। উভয় কৌশলই হাদুপ ক্লাস্টারের কার্যকরী পরিচালনার জন্য অপরিহার্য, এবং ডেটা সুরক্ষা এবং সিস্টেম ফোল্ট টলারেন্স নিশ্চিত করতে সাহায্য করে।
Read more